{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Kmeans"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A implementation of k-means clustering."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "> from mlxtend.cluster import Kmeans"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Overview"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Clustering falls into the category of unsupervised learning, a subfield of machine learning where the ground truth labels are not available to us in real-world applications. In clustering, our goal is to group samples by similarity (in k-means: Euclidean distance).\n",
    "\n",
    "The k-means algorithms can be summarized as follows:\n",
    "\n",
    "1. Randomly pick k centroids from the sample points as initial cluster centers.\n",
    "2. Assign each sample to the nearest centroid $\\mu(j), \\; j \\in {1,...,k}$.\n",
    "3. Move the centroids to the center of the samples that were assigned to it.\n",
    "4. Repeat steps 2 and 3 until the cluster assignments do not change or a user-defined tolerance or a maximum number of iterations is reached."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### References\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- MacQueen, J. B. (1967). [Some Methods for classification and Analysis of Multivariate Observations](http://projecteuclid.org/euclid.bsmsp/1200512992). Proceedings of 5th Berkeley Symposium on Mathematical Statistics and Probability. University of California Press. pp. 281–297. MR 0214227. Zbl 0214.46201. Retrieved 2009-04-07."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 1 - Three Blobs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Load some sample data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x105f744a8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from mlxtend.data import three_blobs_data\n",
    "\n",
    "X, y = three_blobs_data()\n",
    "plt.scatter(X[:, 0], X[:, 1], c='white')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Compute the cluster centroids:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Iteration: 2/50 | Elapsed: 00:00:00 | ETA: 00:00:00"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iterations until convergence: 2\n",
      "Final centroids:\n",
      " [[-1.5947298   2.92236966]\n",
      " [ 2.06521743  0.96137409]\n",
      " [ 0.9329651   4.35420713]]\n"
     ]
    }
   ],
   "source": [
    "from mlxtend.cluster import Kmeans\n",
    "\n",
    "km = Kmeans(k=3, \n",
    "            max_iter=50, \n",
    "            random_seed=1, \n",
    "            print_progress=3)\n",
    "\n",
    "km.fit(X)\n",
    "\n",
    "print('Iterations until convergence:', km.iterations_)\n",
    "print('Final centroids:\\n', km.centroids_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Visualize the cluster memberships:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n/wd49gepTn77dQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1060825c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_clust = km.predict(X)\n",
    "\n",
    "plt.scatter(X[y_clust == 0, 0],\n",
    "            X[y_clust == 0, 1],\n",
    "            s=50,\n",
    "            c='lightgreen',\n",
    "            marker='s',\n",
    "            label='cluster 1')\n",
    "\n",
    "plt.scatter(X[y_clust == 1,0],\n",
    "            X[y_clust == 1,1],\n",
    "            s=50,\n",
    "            c='orange',\n",
    "            marker='o',\n",
    "            label='cluster 2')\n",
    "\n",
    "plt.scatter(X[y_clust == 2,0],\n",
    "            X[y_clust == 2,1],\n",
    "            s=50,\n",
    "            c='lightblue',\n",
    "            marker='v',\n",
    "            label='cluster 3')\n",
    "\n",
    "\n",
    "plt.scatter(km.centroids_[:,0],\n",
    "            km.centroids_[:,1],\n",
    "            s=250,\n",
    "            marker='*',\n",
    "            c='red',\n",
    "            label='centroids')\n",
    "\n",
    "plt.legend(loc='lower left',\n",
    "           scatterpoints=1)\n",
    "plt.grid()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## API"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "## Kmeans\n",
      "\n",
      "*Kmeans(k, max_iter=10, convergence_tolerance=1e-05, random_seed=None, print_progress=0)*\n",
      "\n",
      "K-means clustering class.\n",
      "\n",
      "Added in 0.4.1dev\n",
      "\n",
      "**Parameters**\n",
      "\n",
      "- `k` : int\n",
      "\n",
      "    Number of clusters\n",
      "\n",
      "- `max_iter` : int (default: 10)\n",
      "\n",
      "    Number of iterations during cluster assignment.\n",
      "    Cluster re-assignment stops automatically when the algorithm\n",
      "    converged.\n",
      "\n",
      "- `convergence_tolerance` : float (default: 1e-05)\n",
      "\n",
      "    Compares current centroids with centroids of the previous iteration\n",
      "    using the given tolerance (a small positive float)to determine\n",
      "    if the algorithm converged early.\n",
      "\n",
      "- `random_seed` : int (default: None)\n",
      "\n",
      "    Set random state for the initial centroid assignment.\n",
      "\n",
      "- `print_progress` : int (default: 0)\n",
      "\n",
      "    Prints progress in fitting to stderr.\n",
      "    0: No output\n",
      "    1: Iterations elapsed\n",
      "    2: 1 plus time elapsed\n",
      "    3: 2 plus estimated time until completion\n",
      "\n",
      "**Attributes**\n",
      "\n",
      "- `centroids_` : 2d-array, shape={k, n_features}\n",
      "\n",
      "    Feature values of the k cluster centroids.\n",
      "\n",
      "- `custers_` : dictionary\n",
      "\n",
      "    The cluster assignments stored as a Python dictionary;\n",
      "    the dictionary keys denote the cluster indeces and the items are\n",
      "    Python lists of the sample indices that were assigned to each\n",
      "    cluster.\n",
      "\n",
      "- `iterations_` : int\n",
      "\n",
      "    Number of iterations until convergence.\n",
      "\n",
      "### Methods\n",
      "\n",
      "<hr>\n",
      "\n",
      "*fit(X, init_params=True)*\n",
      "\n",
      "Learn model from training data.\n",
      "\n",
      "**Parameters**\n",
      "\n",
      "- `X` : {array-like, sparse matrix}, shape = [n_samples, n_features]\n",
      "\n",
      "    Training vectors, where n_samples is the number of samples and\n",
      "    n_features is the number of features.\n",
      "\n",
      "- `init_params` : bool (default: True)\n",
      "\n",
      "    Re-initializes model parameters prior to fitting.\n",
      "    Set False to continue training with weights from\n",
      "    a previous model fitting.\n",
      "\n",
      "**Returns**\n",
      "\n",
      "- `self` : object\n",
      "\n",
      "\n",
      "<hr>\n",
      "\n",
      "*predict(X)*\n",
      "\n",
      "Predict targets from X.\n",
      "\n",
      "**Parameters**\n",
      "\n",
      "- `X` : {array-like, sparse matrix}, shape = [n_samples, n_features]\n",
      "\n",
      "    Training vectors, where n_samples is the number of samples and\n",
      "    n_features is the number of features.\n",
      "\n",
      "**Returns**\n",
      "\n",
      "- `target_values` : array-like, shape = [n_samples]\n",
      "\n",
      "    Predicted target values.\n",
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "with open('../../api_modules/mlxtend.cluster/Kmeans.md', 'r') as f:\n",
    "    print(f.read())"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
